home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 August: Tool Chest / Dev.CD Aug 95 TC / Dev.CD Aug 95 TC.toast / New System Software Extensions / QuickDraw™ 3D 1.0 / Development / Interfaces / QD3DRenderer.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-06-02  |  3.0 KB  |  107 lines  |  [TEXT/MPS ]

  1. /******************************************************************************
  2.  **                                                                             **
  3.  **     Module:        QD3DRenderer.h                                             **
  4.  **                                                                          **
  5.  **                                                                          **
  6.  **     Purpose:     Renderer types and routines                                   **
  7.  **                                                                          **
  8.  **                                                                          **
  9.  **                                                                          **
  10.  **     Copyright (C) 1992-1995 Apple Computer, Inc.  All rights reserved.     **
  11.  **                                                                          **
  12.  **                                                                          **
  13.  *****************************************************************************/
  14. #ifndef QD3DRenderer_h
  15. #define QD3DRenderer_h
  16.  
  17. #ifndef QD3D_h
  18. #include "QD3D.h"
  19. #endif  /*  QD3D_h  */
  20.  
  21. #if PRAGMA_ONCE
  22.     #pragma once
  23. #endif
  24.  
  25. #ifdef __cplusplus
  26. extern "C" {
  27. #endif    /* __cplusplus */
  28.  
  29. /******************************************************************************
  30.  **                                                                             **
  31.  **                            Renderer Functions                                 **
  32.  **                                                                             **
  33.  *****************************************************************************/
  34.  
  35. QD3D_EXPORT TQ3RendererObject Q3Renderer_NewFromType(
  36.     TQ3ObjectType            rendererObjectType);
  37.  
  38. QD3D_EXPORT TQ3ObjectType Q3Renderer_GetType(
  39.     TQ3RendererObject        renderer);
  40.  
  41. QD3D_EXPORT TQ3Status Q3Renderer_Flush(
  42.     TQ3RendererObject        renderer,
  43.     TQ3ViewObject            view);
  44.     
  45. QD3D_EXPORT TQ3Status Q3Renderer_Sync(
  46.     TQ3RendererObject        renderer,
  47.     TQ3ViewObject            view);
  48.  
  49.  
  50. /******************************************************************************
  51.  **                                                                             **
  52.  **                        Interactive Renderer Specific Functions                 **
  53.  **                                                                             **
  54.  *****************************************************************************/
  55.  
  56. /* CSG IDs attribute */
  57. #define kQ3AttributeType_ConstructiveSolidGeometryID        Q3_OBJECT_TYPE('c','s','g','i')
  58.  
  59. /* Object IDs, to be applied as attributes on geometries */
  60. #define kQ3SolidGeometryObjA 0
  61. #define kQ3SolidGeometryObjB 1
  62. #define kQ3SolidGeometryObjC 2
  63. #define kQ3SolidGeometryObjD 3
  64. #define kQ3SolidGeometryObjE 4
  65.  
  66. /* Possible CSG equations */
  67.  
  68. typedef enum TQ3CSGEquation {
  69.     kQ3CSGEquationAandB            = (int) 0x88888888,
  70.     kQ3CSGEquationAandnotB         = 0x22222222,
  71.     kQ3CSGEquationAanBonCad        = 0x2F222F22,
  72.     kQ3CSGEquationnotAandB        = 0x44444444,
  73.     kQ3CSGEquationnAaBorCanB    = 0x74747474
  74. } TQ3CSGEquation;
  75.  
  76. QD3D_EXPORT TQ3Status Q3InteractiveRenderer_SetCSGEquation(
  77.     TQ3RendererObject        renderer,
  78.     TQ3CSGEquation            equation);
  79.  
  80. QD3D_EXPORT TQ3Status Q3InteractiveRenderer_GetCSGEquation(
  81.     TQ3RendererObject        renderer,
  82.     TQ3CSGEquation            *equation);
  83.  
  84. QD3D_EXPORT TQ3Status Q3InteractiveRenderer_SetPreferences(
  85.     TQ3RendererObject        renderer,
  86.     long                    vendorID,
  87.     long                    engineID);
  88.  
  89. QD3D_EXPORT TQ3Status Q3InteractiveRenderer_GetPreferences(
  90.     TQ3RendererObject        renderer,
  91.     long                    *vendorID,
  92.     long                    *engineID);
  93.     
  94. QD3D_EXPORT TQ3Status Q3InteractiveRenderer_SetDoubleBufferBypass(
  95.     TQ3RendererObject        renderer,
  96.     TQ3Boolean                bypass);
  97.  
  98. QD3D_EXPORT TQ3Status Q3InteractiveRenderer_GetDoubleBufferBypass(
  99.     TQ3RendererObject        renderer,
  100.     TQ3Boolean                *bypass);
  101.     
  102. #ifdef __cplusplus
  103. }
  104. #endif    /* __cplusplus */
  105.  
  106. #endif  /*  QD3DRenderer_h  */
  107.